/*
 * Copyright 2022, The Cozo Project Authors.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
 * If a copy of the MPL was not distributed with this file,
 * You can obtain one at https://mozilla.org/MPL/2.0/.
 */

use cbindgen::{Config, Language};
use std::env;

fn main() {
    let crate_dir = env::var("CARGO_MANIFEST_DIR").unwrap();

    let mut config = Config::default();
    config.cpp_compat = true;

    cbindgen::Builder::new()
        .with_config(config)
        .with_crate(crate_dir)
        .with_language(Language::C)
        .with_include_guard("COZO_C_H")
        .with_autogen_warning(
            "/* Warning, this file is autogenerated by cbindgen. Don't modify this manually. */",
        )
        .with_header(
            r#"/*
  Copyright 2022, The Cozo Project Authors.

  This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
  If a copy of the MPL was not distributed with this file,
  You can obtain one at https://mozilla.org/MPL/2.0/.
*/"#,
        )
        .with_documentation(true)
        .generate()
        .expect("Unable to generate bindings")
        .write_to_file("cozo_c.h");
}
